#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=4e5+5,mod=998244353;
const ll V=3e16;
int T,x,cnt;
set<ll> s;
int tot,rt;struct tree{ll sum;int ls,rs;bool tg;}tr[N*10];
void update(int &o,ll l,ll r,ll x,ll y){
	if(!o)o=++tot,tr[o]={0,0,0,0};
	if(x<=l&&r<=y)return tr[o].tg=1,tr[o].sum=r-l+1,void();
	ll mid=(l+r)>>1;
	if(x<=mid)update(tr[o].ls,l,mid,x,y);
	if(y>mid)update(tr[o].rs,mid+1,r,x,y);
	if(tr[o].tg)tr[o].sum=r-l+1;
	else tr[o].sum=tr[tr[o].ls].sum+tr[tr[o].rs].sum;
}
void work(){ll x;
	while(T--){
		scanf("%lld",&x);
		if(*s.lower_bound(x)==x)s.erase(x);
		else s.insert(x);
		int len=s.size();ll s1=0,s2=0;
		auto it1=s.begin(),it2=s.end();it2--;
		tot=0,rt=0;
		for(int i=1;i<len;i++){
			s1+=*it1,it1++;
			s2+=*it2;if(it2!=s.begin())it2--; 
			update(rt,1,V,s1,s2-1);
		}
		printf("%lld\n",tr[1].sum);
	}
}
int main(){
	freopen("kte.in","r",stdin);
	freopen("kte.out","w",stdout);
	scanf("%d",&T);
	/*
	if(T<=70)return work1(),0;
	else*/ 
	work();
	return 0;
}

